//
//  AppInfo.m
//  05-列表异步加载网络图片
//
//  Created by apple on 16/1/6.
//  Copyright © 2016年 apple. All rights reserved.
//

#import "AppInfo.h"

@implementation AppInfo

+ (instancetype)appInfoWithDict:(NSDictionary *)dict
{
    // 创建模型对象
    AppInfo *app = [[AppInfo alloc] init];
    
    // KVC字典转模型 : 模型类的属性只能多不能少
    [app setValuesForKeysWithDictionary:dict];
    
    // 返回模型对象
    return app;
}

+ (NSArray *)appInfos
{
    // 获取plist文件路径
    NSString *path = [[NSBundle mainBundle] pathForResource:@"apps.plist" ofType:nil];
    // 通过路径加载字典数组
    NSArray *dictArr = [NSArray arrayWithContentsOfFile:path];
    // 创建临时的可变数组,保存模型
    NSMutableArray *tmpM = [NSMutableArray arrayWithCapacity:dictArr.count];
    // 遍历字典数组
    [dictArr enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        // 获取字典,转模型
        AppInfo *app = [AppInfo appInfoWithDict:obj];
        // 将模型添加到可变数组
        [tmpM addObject:app];
    }];
    // 赋值
    // copy是将一个可变的线程不安全的拷贝成不可变的线程安全的
    // 不希望外界修改
    return tmpM.copy;
}

@end
